1. Field
Embodiments of the invention relate to computer software, and more particularly, to computer software for assisting visually impaired users to access and interact with computer systems.
2. Background
Most modern operating systems provide a rich graphical user interface (GUI) as the primary means of interacting between a user and the applications and resources of the system. GUIs, while useful to most people, impose a significant challenge to those with disabilities such as blindness, visual impairment, and gross or fine motor challenges.
An individual with a physical or visual impairment or similar disability may install and utilize accessibility software on their personal computer. Accessibility software may provide a set of tools to assist a physically or visually impaired user. The set of tools includes a screen reader that reads the text being displayed on the screen using text-to-speech (TTS) technology, and a navigation tool to allow a user to navigate the operating system GUI using only the keyboard, or in some cases by adapting a pointing device (e.g., mouse) input. In addition to these capabilities, accessibility software for impaired users works with external hardware devices to allow output to be streamed to a refreshable Braille display.
Existing accessibility software may conflict with other applications or be unable to properly describe these applications unless the applications are specifically designed to be used with a particular accessibility application. As a result, accessibility applications may become non-functional and unable to recover due to programming and run time conflicts with other applications. The non-functional state of the accessibility application hinders the ability of the impaired user to continue to operate an application or navigate the operating system. The impaired user may not have any means of determining the state of the computer system when the accessibility application becomes non-functional. Also, the accessibility application does not run during system start up and a user attempting to utilize the system during start up is not able to access the utilities of the accessibility application.
Existing accessibility applications attempt to provide full keyboard navigation (FKN). This means that while an operating system GUI might be designed primarily for mouse manipulation, it can also be driven from the keyboard by using keyboard commands to move around a screen or to select functions of applications that are currently in the focus or displayed by the operating system. However, existing accessibility applications are not able to allow a user to access all options or features of a GUI. Also, the navigation systems on accessibility applications for impaired individuals may have key mappings that conflict with the key mappings of other applications. This causes either a loss of functionality in the accessibility application stranding the user relying on the navigation system and utilities provided by the accessibility application.